import java.util.HashMap;
import java.util.Map;

public class Solution {
    public int lengthOfLongestSubstring(String s) {
        char[] arr=s.toCharArray();
        int i=0;
        int j=0;
        int ans=0;
        Map<Character,Integer> map=new HashMap<>();
        for(;j<s.length();j++){
            //收缩窗口
            while(map.containsKey(arr[j])){
                //收缩一次就从map里移除一次
                map.remove(arr[i]);
                i++;
            }
            //扩大窗口
            map.put(arr[j],j);
            //保存最大的窗口答案
            ans=Math.max(ans,j-i+1);
        }
        return ans;
    }
}